home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 22 / Cream of the Crop 22.iso / os2 / bltc127.zip / BULLET.H < prev    next >
C/C++ Source or Header  |  1995-01-05  |  6KB  |  318 lines

  1.  
  2. /* BULLET.H   5-Jan-95-chh
  3.  *
  4.  *  Bullet header for DOS 16-bit C/C++
  5.  *
  6.  */
  7.  
  8. #ifndef __BULLET_H
  9. #define __BULLET_H
  10.  
  11. #pragma pack(1)
  12.  
  13. #define VOID void
  14. #define SHORT short
  15. #define LONG long
  16.  
  17. typedef unsigned char BYTE;
  18. typedef unsigned short USHORT;
  19. typedef unsigned long ULONG;
  20. typedef unsigned char *PSZ;
  21. typedef VOID far *PVOID;
  22.  
  23. #ifdef __cplusplus
  24.    extern "C" {
  25. #endif
  26. int  far pascal BULLET(PVOID);
  27. #ifdef __cplusplus
  28.    }
  29. #endif
  30.  
  31. #define INITXB          0  /* system */
  32. #define EXITXB          1
  33. #define ATEXITXB        2
  34. #define MEMORYXB        3
  35. #define BREAKXB         4
  36. #define BACKUPFILEXB    5
  37. #define STATHANDLEXB    6
  38. #define GETEXTERRORXB   7
  39. #define DVMONCXB        9
  40.  
  41. #define CREATEDXB       10 /* data control mid-level */
  42. #define OPENDXB         11
  43. #define CLOSEDXB        12
  44. #define STATDXB         13
  45. #define READDHXB        14
  46. #define FLUSHDHXB       15
  47. #define COPYDHXB        16
  48. #define ZAPDHXB         17
  49.  
  50. #define CREATEKXB       20 /* key control mid-level */
  51. #define OPENKXB         21
  52. #define CLOSEKXB        22
  53. #define STATKXB         23
  54. #define READKHXB        24
  55. #define FLUSHKHXB       25
  56. #define COPYKHXB        26
  57. #define ZAPKHXB         27
  58.  
  59. #define GETDESCRIPTORXB 30 /* data access mid-level */
  60. #define GETRECORDXB     31
  61. #define ADDRECORDXB     32
  62. #define UPDATERECORDXB  33
  63. #define DELETERECORDXB  34
  64. #define UNDELETERECORDXB 35
  65. #define PACKRECORDSXB   36
  66.  
  67. #define FIRSTKEYXB      40 /* key access mid-level */
  68. #define EQUALKEYXB      41
  69. #define NEXTKEYXB       42
  70. #define PREVKEYXB       43
  71. #define LASTKEYXB       44
  72. #define STOREKEYXB      45
  73. #define DELETEKEYXB     46
  74. #define BUILDKEYXB      47
  75. #define CURRENTKEYXB    48
  76.  
  77. #define GETFIRSTXB      60 /* key and data access high-level */
  78. #define GETEQUALXB      61
  79. #define GETNEXTXB       62
  80. #define GETPREVXB       63
  81. #define GETLASTXB       64
  82. #define INSERTXB        65
  83. #define UPDATEXB        66
  84. #define REINDEXXB       67
  85.  
  86. #define LOCKXB          80 /* network control */
  87. #define UNLOCKXB        81
  88. #define LOCKKEYXB       82
  89. #define UNLOCKKEYXB     83
  90. #define LOCKDATAXB      84
  91. #define UNLOCKDATAXB    85
  92. #define DRIVEREMOTEXB   86
  93. #define FILEREMOTEXB    87
  94. #define SETRETRIESXB    88
  95.  
  96. #define DELETEFILEDOS   100/* DOS file I/O low-level */
  97. #define RENAMEFILEDOS   101
  98. #define CREATEFILEDOS   102
  99. #define OPENFILEDOS     103
  100. #define SEEKFILEDOS     104
  101. #define READFILEDOS     105
  102. #define WRITEFILEDOS    106
  103. #define CLOSEFILEDOS    107
  104. #define ACCESSFILEDOS   108
  105. #define EXPANDFILEDOS   109
  106. #define MAKEDIRDOS      110
  107.  
  108. #define cUNIQUE         1  /* key type flags */
  109. #define cCHAR           2
  110. #define cINTEGER        16
  111. #define cLONG           32
  112. #define cNLS            0x4000  /* note: cNLS is set by BULLET */
  113. #define cSIGNED         0x8000
  114.  
  115. #define READONLY        0  /* do NOT use O_RDONLY,O_WRONLY,O_RDWR */
  116. #define WRITEONLY       1
  117. #define READWRITE       2
  118.  
  119. #define COMPAT          0X0000  /* okay to use SH_DENYRW, etc. */
  120. #define DENYREADWRITE   0x0010  /* or O_DENYREADWRITE, etc.    */
  121. #define DENYWRITE       0x0020
  122. #define DENYREAD        0x0030
  123. #define DENYNONE        0x0040
  124. #define NOINHERIT       0x0080
  125.  
  126.  
  127. struct AccessPack {
  128. USHORT  func;
  129. USHORT  stat;
  130. USHORT  handle;
  131. LONG    recNo;  /* signed */
  132. PVOID   recPtr;
  133. PVOID   keyPtr;
  134. PVOID   nextPtr;
  135. };
  136.  
  137. struct BreakPack {
  138. USHORT  func;
  139. USHORT  stat;
  140. USHORT  mode;
  141. };
  142.  
  143. struct CopyPack {
  144. USHORT  func;
  145. USHORT  stat;
  146. USHORT  handle;
  147. PSZ     filenamePtr;
  148. };
  149.  
  150. struct CreateDataPack {
  151. USHORT  func;
  152. USHORT  stat;
  153. PSZ     filenamePtr;
  154. USHORT  noFields;
  155. PVOID   fieldListPtr;
  156. USHORT  fileID;
  157. };
  158.  
  159. struct CreateKeyPack {
  160. USHORT  func;
  161. USHORT  stat;
  162. PSZ     filenamePtr;
  163. PSZ     keyExpPtr;
  164. USHORT  xbLink;
  165. USHORT  keyFlags;
  166. USHORT  codePageID;
  167. USHORT  countryCode;
  168. PVOID   collatePtr;
  169. };
  170.  
  171. struct FieldDescType {
  172. BYTE    fieldName[11];
  173. BYTE    fieldType;
  174. LONG    fieldDA;
  175. BYTE    fieldLen;
  176. BYTE    fieldDC;
  177. LONG    fieldRez;
  178. BYTE    filler[10];
  179. };
  180.  
  181. struct DescriptorPack {
  182. USHORT  func;
  183. USHORT  stat;
  184. USHORT  handle;
  185. USHORT  fieldnumber;
  186. struct  FieldDescType fd;
  187. };
  188.  
  189. struct DosFilePack {
  190. USHORT  func;
  191. USHORT  stat;
  192. PSZ     filenamePtr;
  193. USHORT  handle;
  194. USHORT  asMode;
  195. USHORT  bytes;
  196. LONG    seekOffset;
  197. USHORT  method;
  198. PVOID   bufferPtr;
  199. USHORT  attr;
  200. PSZ     newNamePtr;
  201. };
  202.  
  203. struct DVmonPack {
  204. USHORT  func;
  205. USHORT  stat;
  206. USHORT  mode;
  207. USHORT  handle;
  208. USHORT  vs;
  209. };
  210.  
  211. struct ExitPack {
  212. USHORT  func;
  213. USHORT  stat;
  214. };
  215.  
  216. struct HandlePack {
  217. USHORT  func;
  218. USHORT  stat;
  219. USHORT  handle;
  220. };
  221.  
  222. struct InitPack {
  223. USHORT  func;
  224. USHORT  stat;
  225. USHORT  JFTmode;
  226. USHORT  DOSver;
  227. USHORT  version;
  228. USHORT  OSversion;
  229. ULONG   exitPtr;
  230. };
  231.  
  232. struct MemoryPack {
  233. USHORT  func;
  234. USHORT  stat;
  235. ULONG   memory;
  236. };
  237.  
  238. struct OpenPack {
  239. USHORT  func;
  240. USHORT  stat;
  241. USHORT  handle;
  242. PSZ     filenamePtr;
  243. USHORT  asMode;
  244. USHORT  xbLink;
  245. };
  246.  
  247. struct RemotePack {
  248. USHORT  func;
  249. USHORT  stat;
  250. USHORT  handle;
  251. USHORT  isRemote;
  252. USHORT  flags;
  253. USHORT  isShare;
  254. };
  255.  
  256. struct SetRetriesPack {
  257. USHORT  func;
  258. USHORT  stat;
  259. USHORT  mode;
  260. USHORT  pause;
  261. USHORT  retries;
  262. };
  263.  
  264. struct StatDataPack {
  265. USHORT  func;
  266. USHORT  stat;
  267. USHORT  handle;
  268. BYTE    fileType;
  269. BYTE    dirty;
  270. ULONG   recs;
  271. USHORT  recLen;
  272. USHORT  fields;
  273. BYTE    f1;
  274. BYTE    LUyear;
  275. BYTE    LUmonth;
  276. BYTE    LUday;
  277. USHORT  hereseg;
  278. BYTE    filler[10];
  279. };
  280.  
  281. struct StatKeyPack {
  282. USHORT  func;
  283. USHORT  stat;
  284. USHORT  handle;
  285. BYTE    fileType;
  286. BYTE    dirty;
  287. ULONG   keys;
  288. USHORT  keyLen;
  289. USHORT  xbLink;
  290. ULONG   xbRecNo;
  291. USHORT  hereSeg;
  292. USHORT  codePageID;
  293. USHORT  countryCode;
  294. USHORT  collateTableSize;
  295. USHORT  keyFlags;
  296. BYTE    filler[2];
  297. };
  298.  
  299. struct StatHandlePack {
  300. USHORT  func;
  301. USHORT  stat;
  302. USHORT  handle;
  303. USHORT  ID;
  304. PSZ     filenamePtr;
  305. };
  306.  
  307. struct XerrorPack {
  308. USHORT  func;
  309. USHORT  stat;
  310. USHORT  errclass;
  311. USHORT  action;
  312. USHORT  location;
  313. };
  314.  
  315. #pragma pack()
  316.  
  317. #endif /* ifndef __BULLET_H */
  318.